package dao;

import entity.User;
import org.apache.ibatis.annotations.Param;
import param.UserParam;

import java.util.List;

/**
 * @author 石小俊
 * @date 2023年11月06日 9:08
 */
public interface UserDao {

    public void insertUser(User user);

    User selectById(Integer id);

    void updateUser(User user);

    void deleteById(Integer id);

    List<User> selectAll();

    void insertUser2(User user);

    User selectById2(Integer id);

    List<User> selectAll2();

    User selectByUsernameAndPassword(UserParam userParam);

    User selectByUsernameAndPassword2(String username,String password);

    User selectByUsernameAndPassword3(@Param("username") String username, @Param("password") String password);

    /**
     * 模糊查询,考虑特殊字符
     * @param username
     * @return
     */
    List<User> selectByUsername(String username);
    List<User> selectByUsername2(String username);

    /**
     * 保存返回主键
     * @param user
     * @return 返回的是受到影响的行数
     */
    Integer insertReturnPrimaryKey(User user);

    List<User> selectByUsernameAndPassword4(@Param("username") String username, @Param("password") String password);
    List<User> selectByUsernameAndPassword5(@Param("username") String username, @Param("password") String password);

    List<User> selectByParams(User user);
    List<User> selectByParams2(User user);
    List<User> selectByParams3(User user);
    List<User> selectByParams4(User user);

    void updateUser2(User user);
    void updateUser3(User user);

    List<User> selectByIds(List<Integer> ids);
}
